package com.powerband.apiheartrate.manager

import com.powerband.apiheartrate.ble.fbkBleDevice.FBKBleDeviceStatus
import android.bluetooth.BluetoothGattCharacteristic
import com.powerband.apiheartrate.base.FBKArmBandCmd
import com.powerband.apiheartrate.base.FBKSummaryType
import com.powerband.apiheartrate.ble.fbkBleDevice.FBKBleDevice
import com.powerband.apiheartrate.ota.OtaError
import com.powerband.apiheartrate.ota.OtaStatus

interface FBKManagerControllerCallBack {
    fun onFinishDiscovery()
    fun onDiscoveryDevice(result: FBKBleDevice)
    fun bleConnectError(error: String?, managerController: FBKManagerController?)
    fun bleScanError(error: String?, managerController: FBKManagerController?)
    fun bleConnectStatus(
        connectStatus: FBKBleDeviceStatus?,
        managerController: FBKManagerController?
    )

    fun bleConnectStatusLog(logString: String?, managerController: FBKManagerController?)
    fun bleWriteDataResult(isSucceed: Boolean, managerController: FBKManagerController?)
    fun bleConnectResult(
        resultData: ByteArray,
        resultKey: FBKArmBandCmd,
        managerController: FBKManagerController?
    )

    fun bleCommonResult(resultData: Any, managerController: FBKManagerController?)
    fun bleConnectUuids(
        charUuidArray: List<BluetoothGattCharacteristic>?,
        managerController: FBKManagerController?
    )

    fun bleConnectInfo(information: String?, managerController: FBKManagerController?)
    fun otaLog(status: OtaStatus, progress: Float)
    fun otaError(error: OtaError)

    fun bleSummaryInfo(info: List<Map<String, Any>>, type: FBKSummaryType)

    fun logOutBufferData(data: List<Byte>)
    fun totalPacket(num: Int)
}